Industrial controllers are special-purpose computers utilized for controlling industrial processes, manufacturing equipment, and other factory automation, such as data collection or networked systems. In accordance with a control program, the industrial controller, having an associated processor (or processors), measures one or more process variables or inputs reflecting the status of a controlled system, and changes outputs effecting control of such system. The inputs and outputs may be binary, (e.g., on or off), as well as analog inputs and outputs assuming a continuous range of values.
Measured inputs received from such systems and the outputs transmitted by the systems generally pass through one or more input/output (I/O) modules. These I/O modules serve as an electrical interface to the controller and may be located proximate to or remote from the controller including remote network interfaces to associated systems. Inputs and outputs may be recorded in an I/O table in processor memory, wherein input values may be asynchronously read from one or more input modules and output values written to the I/O table for subsequent communication to the control system by specialized communications circuitry (e.g., back plane interface, communications module). Output modules may interface directly with one or more control elements, by receiving an output from the I/O table to control a device such as a motor, valve, solenoid, amplifier, and the like.
At the core of the industrial control system, is a logic processor such as a Programmable Logic Controller (PLC) or PC-based controller. Programmable Logic Controllers for instance, are programmed by systems designers to operate manufacturing processes via user-designed logic programs or user programs. The user programs are stored in memory and generally executed by the PLC in a sequential manner although instruction jumping, looping and interrupt routines, for example, are also common. Associated with the user program are a plurality of memory elements or variables that provide dynamics to PLC operations and programs. These variables can be user-defined and can be defined as bits, bytes, words, integers, floating point numbers, timers, counters and/or other data types to name but a few examples.
Presently, industrial control systems have no viable means of controlling and managing access to industrial control programs and documents. Furthermore, there is little or no mechanism to secure communications to and amongst industrial control devices. In fact, one could purchase automation device control software load it on a computer and if they gain access to a local industrial system network could upload, download, and otherwise manipulate the operations of substantially all automation devices therein. Failure to provide reliable and secure communication devices such as controllers and I/O devices can at the very least be fiscally detrimental to a company employing such systems as some company employees could inadvertently or intentionally make changes to systems that cause a plant to shut down of operate inefficiently. Moreover, in today's world of corporate espionage and terrorism, vulnerable factory systems make for tempting targets. In extreme cases, vulnerable manufacturing systems can expose secure information such as trade secret processes. Moreover, the infiltration of malicious programs can result in catastrophic property damage and possibly loss of human life. Accordingly, there is a need in the art for a system and method of secure device communications and digital rights management in industrial control systems.